﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using ucntemaxp.DB;
using System.Linq.Expressions;

namespace ucntemaxp.Ctr
{
    class CtrAnmeldelser
    {
        private DB.Dm74_1Entities DBCon;

        public CtrAnmeldelser()
        {
             DBCon = new DB.Dm74_1Entities();
        }

        public void opretAnmeldelser(decimal stjerner, string beskrivelse, string forfatter, int fid)
        {
            try
            {
                DBCon.Anmeldelsers.AddObject(new Anmeldelser()
                {
                    Stjerner = stjerner,
                    Beskrivelse = beskrivelse,
                    Forfatter = forfatter,
                    Fid = fid
                });
                DBCon.SaveChanges();
            }
            catch (Exception)
            {
                
                throw;
            }
            

        }

        public void removeAnmeldelser(int id)
        {
            DBCon.Anmeldelsers.DeleteObject(new Anmeldelser()
            {
                Anmeldelserid = id
            });
        }

        public void updateAnmeldelser(int anmeldelserid, decimal stjerner, string beskrivelse, string forfatter, int fid)
        {
            try
            {
                Anmeldelser a = DBCon.Anmeldelsers.First(i => i.Anmeldelserid == anmeldelserid);
                a.Stjerner = stjerner;
                a.Beskrivelse = beskrivelse;
                a.Forfatter = forfatter;
                a.Fid = fid;
                DBCon.SaveChanges();
            }
            catch (Exception ex)
            {
              
                throw ex;
            }
        }

        public void Update(Action<Anmeldelser> updateStatement, Expression<Func<Anmeldelser, bool>> where)
        {
            // get your object context & objectset, cast to IQueryable<T>
            var table = (IQueryable<Anmeldelser>)DBCon.CreateObjectSet<Anmeldelser>();

            // filter with the Expression
            var items = table.Where(where);

            // perform the Action on each item
            foreach (var item in items)
            {
                updateStatement(item);  
            }

            // save changes.
        }
    }
}
